With the increasing prevalence of portable and mobile computing devices, the importance of data conversion (i.e., synchronization) between two or more of such devices becomes paramount. Clients expect to be able to access and manipulate the same data stores on more than one device. In the wireless area, for example, many conventional wireless PIM (Personal Information Manager) synchronization products have difficulty converting PIM items from a back end (e.g., server) schema to a different front end (e.g., device) schema. This is at least partially due to the lack of available conversions between the back end schema and the front end schema. Common back end server schemas include DAV (Distributed Authoring and Versioning) extensions to the Hypertext Transfer Protocol (HTTP), Messaging Application Programming Interface (MAPI), Multipurpose Internet Mail Extensions (MIME), Exchange Server Objects (XSO), Outlook Object Model/MAPI, Microsoft Hotmail protocol, among others. Common front end schemas include, for example, AirSync, extensible markup language (XML), MIME, and other various conventional web services.
Examples of conventional conversion products include ActiveSync, Mobile Information Server, and Exchange ActiveSync, all by Microsoft Corporation of Redmond, Wash. Overcoming this conversion problem conventionally requires writing new conversion code for each new schema, because conventional systems lack a common framework to support schema conversion. Such code revision solutions require that both the back end and the front end products have the schema conversion development done independently of one another, by hand, which can be time consuming and expensive. Such individual redevelopment for each new schema is undesirable. Conventional systems also attempt to address these problems with XML Schema Definition (XSD) schema transformations. The problem inherent with XSD schemas is that they cannot represent complex data transformations (e.g. from a formatted text property to a compressed binary format), as they do not have actual code doing the data conversion. Furthermore, XSDs are limited to transformations between text protocols (e.g. from one XML format to another) rather than, for example, from text protocol to back-end API.
Unfortunately, these issues are not adequately addressed by any conventional system. Accordingly, a solution that improves conversion and data reading between two different schemas by employing a general, light-weight, extensible, and efficient system for working with mismatched schemas is desirable.